package cn.xiaobai.core.repository;

import cn.xiaobai.core.domain.factory.InConfFactory;

import java.util.List;

/**
 * 插件数据工厂
 *
 * @Author yangdaji
 * @Date 2023/12/11
 * @PackageName cn.xiaobai.core.repository
 * @ClassName PluginDataFactory
 */
public interface PluginDataFactory {


    /**
     * 初始化
     */
    void init();

    /**
     * 是否包含插件类型
     *
     * @param type 插件类型
     * @return
     */
    boolean containPlugin(String type);

    /**
     * 加载输入配置
     *
     * @param type
     * @return
     */
    boolean loadInConf(String type);

    /**
     * 获取输入配置工厂
     *
     * @param type
     * @return
     */
    InConfFactory getInConfFactory(String type);

    /**
     * 删除输入配置工厂
     *
     * @param type
     * @return
     */
    Boolean removeInConfFactory(String type);

    /**
     * 获取所有输入配置工厂
     *
     * @return
     */
    List<InConfFactory> getAllInConfFactorys();


}
